#pragma once

#include "reversetask.h"
#include "EdsCalcTask.h"
#include "LineEdsCalcTask.h"

class EdsReverseTask : public ReverseTask
{
protected:
	virtual void AfterInit();
	LineEdsCalcTask Task;
	fePolyline<double> Generator;
	fePolyline<double> Receiver;

	double Z;
	double Multiplier;

	feVector BufVector;
	feVector CachedCurve;
	ConductiveLayer CachedL[100];
	int				CacheLNum;
	feVector Times;

public:
	EdsReverseTask();

	virtual void CalcAbnormalCurve(int iIndex, ConductiveLayer *iNewMedium, int iLayersCount);
	virtual void CalcActualCurve(int iIndex);

	virtual ~EdsReverseTask();
};
